package cn.song.freight.enums;

import lombok.Getter;

/**
 * 操作类型枚举
 * 定义系统中支持的各种操作类型
 *
 * @author SongRenShuo
 */
@Getter
public enum OperationType {

    /**
     * 新增操作
     */
    INSERT("INSERT", "新增"),

    /**
     * 修改操作
     */
    UPDATE("UPDATE", "修改"),

    /**
     * 删除操作
     */
    DELETE("DELETE", "删除"),

    /**
     * 批量新增操作
     */
    BATCH_INSERT("BATCH_INSERT", "批量新增"),

    /**
     * 批量修改操作
     */
    BATCH_UPDATE("BATCH_UPDATE", "批量修改"),

    /**
     * 批量删除操作
     */
    BATCH_DELETE("BATCH_DELETE", "批量删除"),

    /**
     * 查询操作
     */
    SELECT("SELECT", "查询"),

    /**
     * 导出操作
     */
    EXPORT("EXPORT", "导出"),

    /**
     * 导入操作
     */
    IMPORT("IMPORT", "导入");

    private final String code;
    private final String description;

    OperationType(String code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据编码获取枚举
     *
     * @param code 编码
     * @return 操作类型枚举
     */
    public static OperationType getByCode(String code) {
        for (OperationType type : values()) {
            if (type.code.equals(code)) {
                return type;
            }
        }
        return null;
    }
}
